package com.aiti.lulian.mapper.gxmh;

import com.aiti.base.core.base.mapper.SuperMapper;
import com.aiti.framework.commons.dictmodel.entity.SysDictData;
import com.aiti.lulian.dto.MyCollectionDto;
import com.aiti.lulian.gxmh.dto.GxmhArticleParamDto;
import com.aiti.lulian.gxmh.dto.GxmhArticleQueryParamDto;
import com.aiti.lulian.gxmh.dto.GxmhPolicyDeclareQueryDto;
import com.aiti.lulian.gxmh.dto.GxmhPolicyParamDto;
import com.aiti.lulian.gxmh.entity.GovArticle;
import com.aiti.lulian.gxmh.excel.GxmhExcelArticleParamDto;
import com.aiti.lulian.gxmh.excel.GxmhExportArticleVo;
import com.aiti.lulian.gxmh.vo.GxmhArticleVo;
import com.aiti.lulian.gxmh.vo.GxmhFormDeclareVo;
import com.aiti.lulian.gxmh.vo.GxmhPolicyDeclareListItemVo;
import com.aiti.lulian.gxmh.vo.GxmhPolicyVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface GovArticleMapper extends SuperMapper<GovArticle> {

    Integer queryCountByTitleAndType(@Param("title") String title, @Param("policyType") String policyType);

    List<GxmhPolicyVo> queryPolicyList(IPage<GxmhPolicyVo> page, @Param("dto") GxmhPolicyParamDto dto);

    Integer queryCountByLevel(@Param("level") String level);

    GxmhPolicyVo getPolicyDetail(@Param("baseId") String baseId);

    void updateClickCount(@Param("baseId") String baseId);

    GxmhPolicyVo getHotPolicy(@Param("province") String province, @Param("city") String city, @Param("county") String county);

    void updateArticle(@Param("dto") GxmhArticleParamDto dto, @Param("loginUserId") String loginUserId);

    GxmhArticleVo queryArticleByBaseId(@Param("baseId") String baseId);

    void removeByBaseIdList(@Param("baseIdList") List<String> baseIdList);

    List<GxmhArticleVo> queryArticleList(IPage<GxmhArticleVo> page, @Param("dto") GxmhArticleQueryParamDto dto);

    List<GxmhExportArticleVo> queryExportArticleList(IPage<GxmhExportArticleVo> page, @Param("dto") GxmhArticleQueryParamDto dto);

    List<GxmhPolicyVo> selectGxmhPolicyCollectionList(IPage<GxmhPolicyVo> page, @Param("dto") MyCollectionDto dto);

    void removePolicyDeclareByPolicyIdList(@Param("policyIdList") List<String> policyIdList);

    List<SysDictData> queryPolicyTypeList();

    List<GxmhPolicyDeclareListItemVo> queryPolicyDeclareList(IPage<GxmhPolicyDeclareListItemVo> page, @Param("dto") GxmhPolicyDeclareQueryDto queryDto);

    List<GxmhFormDeclareVo> queryPolicyDeclareByFromId(IPage<GxmhFormDeclareVo> page, @Param("dto") GxmhPolicyDeclareQueryDto queryDto);

    void removePolicyDeclareByBaseIdList(@Param("baseIdList") List<String> baseIdList);

    String queryOldFormId(@Param("baseId")String baseId);

    Integer queryDelcareCount(@Param("baseId")String baseId);
}
